package com.gome.axwl.aoc.facade;

import com.gome.axwl.aoc.entity.driver.DriverWithCarrierDto;
import com.gome.axwl.aoc.entity.dto.DriverIntegrationDto;
import com.gome.axwl.aoc.entity.dto.DriverIntegrationParamDto;
import com.gome.axwl.aoc.entity.dto.PageResultDto;
import com.gome.commons.core.ResultData;

import java.util.List;

/**
 * @Description: 司机积分facade
 * @Auther: yinyuxin@gome.com.cn
 * @Date: 2018/4/28 13:53
 */
public interface DriverIntegrationFacade {

    /**
     * 按月查询所有司机的积分信息,并根据指定字段排序（调用其他系统接口 获取页面所需数据）
     * @param driverIntegrationParamDto
     * @return
     */
    ResultData<PageResultDto<DriverIntegrationDto>> queryAllDriverIntegration(DriverIntegrationParamDto driverIntegrationParamDto);

    /**
     * 查询指定司机的历史积分明细
     * @param carrierNo 服务商编码
     * @param driverCode 司机code
     * @param orderField 排序字段 等级：level 服务总分：integra
     * @param orderSort  排序方式 0：从大到小 1：从小到大
     * @param pageIndex
     * @param pageSize
     * @return
     */
    ResultData<PageResultDto<DriverIntegrationDto>> queryDriverIntegrationList(String carrierNo,String driverCode,String orderField,Integer orderSort,Integer pageIndex,Integer pageSize);

    /**
     * 查询司机接单天数
     * @param driverId
     * @param month
     * @return
     */
    ResultData queryDriverTakingsDetail(Integer driverId, String month);

    /**
     * 批量生成司机积分
     * @param drivers
     * @return
     */
    ResultData createDriversIntegration(List<DriverWithCarrierDto> drivers,String dateWithoutDay);
}
